package com.loong.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.loong.system.dto.MenuAddDTO;
import com.loong.system.dto.MenuQueryDTO;
import com.loong.system.dto.MenuUpdateDTO;
import com.loong.system.dto.PermissionAssignmentDTO;
import com.loong.system.entity.Menu;
import com.loong.system.vo.MenuVO;
import java.util.List;

/**
 * @author 47349
 * @description 针对表【sys_menu(菜单表)】的数据库操作Service
 * @createDate 2024-01-18 03:25:36
 */
public interface IMenuService extends IService<Menu> {
  /**
   * 获取菜单树
   *
   * @param menuIdList
   * @param menuQueryDTO
   * @return
   */
  List<MenuVO> getMenuList(List<String> menuIdList, MenuQueryDTO menuQueryDTO);

  /**
   * 新增
   *
   * @param addDTO
   */
  void addMenu(MenuAddDTO addDTO);

  /**
   * 删除
   *
   * @param id
   */
  void removeMenu(String id);

  /**
   * 更新
   *
   * @param updateDTO
   */
  void updateMenu(MenuUpdateDTO updateDTO);

  /**
   * 权限分配
   *
   * @param permissionAssignmentDTO
   */
  void permissionAssignment(PermissionAssignmentDTO permissionAssignmentDTO);

  /**
   * 根据角色id获取权限列表
   *
   * @param roleId
   * @return
   */
  List<String> getPermissionList(String roleId);
}
